草庐IT

c++ - 从 C++ 类制作 Visual C++ DLL

全部标签

c++ - 如何跨 DLL 边界跟踪内存

我想要高性能的运行时内存指标,所以我编写了一个基于重载new和delete的内存跟踪器。它基本上可以让您在堆中进行分配并分析有关它们的所有内容-碎片、大小、时间、数量、调用堆栈等。但是,它有2个致命缺陷:它无法跟踪在其他DLL中分配的内存以及何时拥有对象传递给DLL,反之亦然。还有一些较小的缺陷:如果用户使用malloc而不是new,则它是未被跟踪的;或者如果用户定义了一个类new/delete。如何消除这些缺陷?我想我一定是通过重载new/delete从根本上错误地解决了这个问题,有没有更好的方法? 最佳答案 实现这一点的正确方法

c++ - 如何在 Visual Studio 2012 C++ 项目中引用(动态库)DLL?

我制作了一个带有编译头文件的动态库并编译了一个DLL(使用VisualStudio2012)。我还有一个用VisualStudio2012制作的C++项目,我想引用之前生成的DLL。如何在我的VisualStudio2012C++项目中引用该(动态库)DLL?如果要使用库的功能,是否还需要指向头文件(.h)? 最佳答案 我发现使用项目属性对话框中的FrameworkandReferences项来引用DLL项目最简单:看起来您正在将一些奇怪的.Net东西添加到您的C++native代码中,但这也是native代码项目引用另一个项目的最

c# - 在 C# 代码中导入 DLL 函数

我有一个DLL,我想在我的C#代码中使用它的函数以下是该DLL的功能:extern"C"{__declspec(dllimport)constchar*__stdcallZAJsonRequestA(constchar*szReq);__declspec(dllimport)constwchar_t*__stdcallZAJsonRequestW(constwchar_t*szReq);__declspec(dllimport)constBSTR__stdcallZAJsonRequestBSTR(BSTRsReq);}谁能告诉我如何在c#项目中使用它,因为这个dll似乎是用其他语言编

c++ - Firefox pr_write 钩子(Hook)。 dll 注入(inject),Windows 钩子(Hook)

问题是包含PR_Write()的DLL调用的不是npsr4.dll,而是nss3.dll和Hook无法从不存在的库中找到GetProcAddress()。我正在尝试创建FirefoxHook,它从PR_Write()Firefox方法(它位于nspr4.dll中)收集数据。我在谷歌上搜索了很多,并尝试了很多方法来做到这一点,但不幸的是,当我注入(inject)钩子(Hook)时,Firefox崩溃了。首先,我尝试不使用DLL,使用这个方法http://redkiing.wordpress.com/2012/04/30/firefox-formgrabber-iii-code-injec

c++ - 未提供时从 COM+ dll 获取 IDL(用于 TLB)

我有一个.dll,其中包含一些带有特定/自定义接口(interface)的directshow过滤器(COM)。大多数第3方directshow组件包含可用于跨环境通信(C#typelib导入)的嵌入式.tlb文件。我不愿意尝试手动创建c#所需的接口(interface),因为没有提供idl/tlb文件。是否可以从COM.dll生成一个tlb(或者至少是一个idl,我可以通过MIDL编译它)? 最佳答案 是的,可以对IDL(或非常接近它的东西)进行逆向工程/反汇编。您需要做的是给自己一个新的C++控制台项目,它提供默认代码#incl

c# - LINQPad:尝试使用使用 [DllImport] 的程序集来访问 C++ dll

我添加了MyAssembly.dll作为对我的查询的附加引用,并且工作正常:我可以毫无问题地使用它的各种类。MyAssembly.dll中的一个类的其中一个方法引用了另一个dll(Wrapper.dll)。Wrapper.dll使用[DllImport]访问C++dll(C.dll)中的功能:[DllImport("C.dll",CallingConvention=CallingConvention.StdCall,EntryPoint="CPlusPlusFunction")]internalstaticexternUInt32_CPlusPlusFunction([MarshalA

再会!在此程序中,我为餐厅制作菜单,包括句柄功能。

再会!在此程序中,我为餐厅制作菜单,包括手柄功能。问题陈述:我无法连接数组:Name,Price具有功能getall和get.packagemainimport("fmt""net/http""io""strconv""net/url")typeMenustruct{NamestringPriceintdescriptionstring}func(mMenu)String()string{returnfmt.Sprintf("%s:%s",m.Name,m.Price,)}funcmain(){x:=[]Menu{{Name:"Crispy",Price:31},{Name:"Burger",

c++ - 如何使用 dll 将 C++ 类库导出到 C#?

在我之前的修订版游戏引擎中,我为C#的游戏编辑器移除了主要功能。现在,我开始用静态库修改游戏引擎。已经有一个用C++创建的动态库来使用DLLEXPORTforC#。刚才我想测试新功能并从C++创建一个DLL文件。因为DLL包含类,所以我想知道如何才能使用DLL导出。我会这样做吗:[DLLEXPORT("GameEngine.dll",EntryPoint="SomeClass",Conventional=_stdcall)]staticexternvoidfunctionFromClass();我感觉它可能是DLLImport而不是DLLExport。我想知道我该怎么做?我考虑的另一种

c# - 在 C++Builder 中使用 C# .NET DLL?

如何在C++Builder中使用C#.NETDLL?我想在C++Builder中使用C#dll类的功能。 最佳答案 为了在Windows下从非托管代码调用托管代码,您几乎必须通过COM。在您的情况下,这意味着将您的C#库构建为COMVisible并将其注册为COMInteroperation。然后您需要以正常方式从C++代码调用您的COM对象。有一个很好的答案here它完成了实现这一目标所需的步骤。 关于c#-在C++Builder中使用C#.NETDLL?,我们在StackOverfl

c++ - Delphi 应用程序无法调用简单的 C++ DLL 函数

我想编写一个C++DLL并从Delphi6应用程序调用它。我从教程中的简单HelloWorld代码开始,尽管它在从C++程序调用时运行良好,但在Delphi应用程序中它会导致以下错误消息MyDll.h#ifndef_MY_DLL_H_#define_MY_DLL_H_#ifdefinedMY_DLL#defineMYDLL_API__declspec(dllexport)#else#defineMYDLL_API__declspec(dllimport)#endifextern"C"{MYDLL_APIintHelloWorld();}#endifMyDll.cpp#defineMY_